package com.xxzuibang.day6.testti;

/*7. 从键盘输入8个整数存放在一个数组中，然后将奇数和偶数分别存入到两个不同的数组中，并按奇数、偶数交替的顺序输出这两个数组中的所有数据（先交替输出，如果奇数个数多，则再输出剩下的奇数，如果偶数个数多，则再输出剩下的偶数）。
        （提示与要求：
        （1）定义一个数组存储从键盘输入的8个整数，先判断这8个整数中奇数和偶数的个数，才能定义存储奇数和偶数的数组的长度；
        （2）把一个大的数组分别存放在奇数和偶数数组中并交替输出的过程定义为方法）*/

import java.util.Arrays;
import java.util.Scanner;

public class Test07 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int[] a=new int[8];
        System.out.println("请输入8个数：");
        for (int i = 0; i <a.length ; i++) {
            a[i]=sc.nextInt();
        }
        //调用方法
        Array(a);

    }
    public  static  void Array(int[] num){
        int[] oddNum;//奇数数组
        int[] evenNum;//偶数数组
        int evenCount=0;
        int oddCount=0;
        for (int i = 0; i < num.length; i++) {
            if(num[i]%2==0){
                evenCount++;
            }else{
                oddCount++;
            }
        }//循环结束已经统计出了num数组中的偶数个数为evencount，奇数个数为oddcount
        oddNum=new int[oddCount];
        evenNum=new int[evenCount];
        int e=0,o=0;
        for (int i = 0; i < num.length; i++) {
            if(num[i]%2==0){
                evenNum[e]=num[i];
            }else{
                oddNum[o]=num[i];
            }
        }//此时已经将数组num根据奇数偶数分捡到两个数组中
        if(evenNum.length>oddNum.length){//如果偶数个数较多
            for (int i = 0; i < oddNum.length-1; i++) {
                System.out.print(oddNum[i]+" "+evenNum[i]+" ");
            }//先按照奇数的个数交替输出
            for(int i=oddNum.length;i<evenNum.length-1;i++){
                System.out.print(evenNum[i]+" ");
            }//输出剩下的偶数

        }else{
            for (int i = 0; i < evenNum.length - 1; i++) {
                System.out.print(oddNum[i]+" "+evenNum[i]+" ");
            }//先按照偶数的个数交替输出
            for(int i=evenNum.length;i<=oddNum.length-1;i++){
                System.out.print(oddNum[i]+" ");
            }//输出剩下的奇数

        }
    }
}
